<?php
declare (strict_types=1);
namespace app\serviceapp;

use app\model\Matchmaker;
use app\MyException;

/**
 * 支付
 * Class PayService
 * @package app\service
 */
class PayService
{
    /**
     * @param $orderNo 订单号
     * @param $tradeMoney 支付金额
     * @param int $payType 0 微信APP 1 支付宝 2 小程序
     * @return array
     * @throws \Exception
     */
    public static function pay($orderNo, $tradeMoney, $payType = 0)
    {
//        switch ($payType) {
//            case 1:
//                //支付宝
//                $pay = new  Alipay();
//                $pay->tradeSubject = $order['subject'];
//                $data = [
//                    'orderunique' => (string)$rs['data'],
//                    'alipay' => $pay->sdkExecute([
//                        'tradeNo' => $orderNo,
//                        'tradeMoney' =>  bcdiv($order["needPay"], 1 , 2),
//                    ]),
//                ];
//                break;
//            case 2:
//                // 小程序
//                $userId = $this->user_id;
//                if (empty($userId)) {
//                    throw new \Exception('缺少参数', 100);
//                }
//                $appKey = config('wxpay.xcx.key');
//                $appId = config('wxpay.xcx.app_id');
//                $mchId = config('wxpay.xcx.mch_id');
//                if (empty($appKey) || empty($appId) || empty($mchId)) {
//                    throw new \Exception('支付配置错误', 100);
//                }
//                $notifyUrl = config('wxpay.xcx.notify_url');
//                $ip = Tools::getClientIp();
//                $recharge['merOrderId'] = $orderNo;
//                $recharge['money'] = $order["needPay"];
//                $recharge['body'] = $order['subject'];
//
//                $member = Member::where(['user_id' => $this->user_id, 'from' => 1])->find();
//                if (empty($member['openid'])) {
//                    throw new \Exception('获取openid失败', 100);
//                }
//                $payer = new WeixinPay($appId, $mchId, $appKey, $notifyUrl, 'JKC_WEIXIN_XCX');
//                $jsApiParams = $payer->getXcxJsApiParams($recharge, $member['openid'], $ip);
//                $jsApiParams['timeStamp'] = $jsApiParams['timestamp'];
//                unset($jsApiParams['timestamp']);
//                $data = [
//                    "xcx" => $jsApiParams,
//                    'orderunique' => (string)$rs["data"],
//                ];
//                break;
//            default:
//                // 微信
//                $key = config('wxpay.app.key');
//                $appId = config('wxpay.app.app_id');
//                $mchId = config('wxpay.app.mch_id');
//                if (empty($key) || empty($appId) || empty($mchId)) {
//                    throw new \Exception('支付配置错误', 100);
//                }
//                $notifyUrl = config('wxpay.app.notify_url');
//                $payer = new WeixinPay($appId, $mchId, $key, $notifyUrl);
//                $recharge['merOrderId'] = $orderNo;
//                $recharge['money'] = $order["needPay"];
//                $recharge['body'] = $order['subject'];
//                $wxOrder = $payer->prepay($recharge);
//
//                $prepayData = [
//                    'appId' => $appId,
//                    'partnerId' => $mchId,
//                    'prepayId' => $wxOrder['prepay_id'],
//                    'nonceStr' => $payer->createNonceString(),
//                    'package' => 'Sign=WXPay',
//                    'timestamp' => time()
//                ];
//                $signData = array_combine(array_map('strtolower', array_keys($prepayData)), array_values($prepayData));
//
//                $prepayData['sign'] = $payer->sign($signData);
//                $data['wxpay'] = $prepayData;
//                $data['orderunique'] = (string)$rs['data'];
//        }
        return $data;
    }
}
